Computer systems linked to each other in a communication network, i.e. the Internet, are used by both business users and individual users. The current usage model of the Internet operates on a “request-response” architectural framework. A user connects to the internet infrastructure and requests information via their client device from any number of servers around the world. A client device can be a networked personal computer, personal digital assistant, or any other computation device with network capability. In the current network model, requests and responses flow between clients/users and servers via routers and switching devices. There is little user control over how the network connection operates or when it is operational.
New forms of Internet connectivity are emerging. One form of connection which is becoming popular is the broadband persistent connection. The broadband connection allows transmission speeds greater than 2 million bits per second and also allows a continuous connection i.e. twenty four hours a day, seven days a week. This type of connection is called “always on” and it operates much like current telephony access.
Currently there is little advantage in having an internet connection available for twenty four hours, seven days a week due to the request-response nature of the network. Today, the user must be present at their device in order to receive service. The ability to tailor the network service to the needs of the user is extremely limited.
The current use of the Internet limits the user's ability to interact directly with the network services and data transmission function found as a part of their client device. The client device operating system controls network interaction using predominately real-time, first in first out (FIFO) queuing mechanisms. As the computational capabilities of the client devices and the network infrastructure itself evolves, there is an opportunity to improve performance and user experience by distributing control plane functionality to the client device. In this instance, control plane is defined as the set of functions which control the operational characteristics of the network transmission between a client and a server. While this term is used widely within the network component technology area, this invention extends this concept to include the control of networking services found within the client device operating system itself. See Gao, J., Steenkiste, P., Takahashi, E., and Fisher, A., “A Programmable Router Supporting Control Plane Extensibility”, IEEE Communications Magazine, pp. 152-158, March 2000. Control plane functions are found in networking router devices which, for example, routes datagrams or “packets” of information from a source to its destination. Control plane functions relevant to this invention are congestion control, queuing and resource management. For the purpose of this invention, packets are defined as information in a standard format and length which contain a header section of identifying information and a data section which is either user data or network control data.
The combination of embedded control plane functions within the client device coupled with end user preferences provides the means to effectively use “always on” Internet connections without direct user interaction.